/** @file 
 *  Header file di aggiorna.cc; sono presenti le definizioni delle funzioni utilizzate.
 */
 
/** Aggiorna lo sfondo, in modo che si "muova" verso destra. Se la x supera la metà della larghezza dello sfondo, la si resetta a zero.
 * @param SFONDO Struttura che gestisce i parametri utili allo scrolling dello sfondo
 */
void UpSfondo(sfondo &SFONDO);

/** Aggiorna il movimento dei cattivi e aumenta i punti del giocatore.
 * @param *CATTIVI	 array di strutture contenenti i parametri dei cattivi
 * @param GIOCATORE  struttura necessaria per modificare i punti
 * @param ncattivi	 numero massimo di cattivi
 */
void UpCattivi(cattivi *CATTIVI, giocatore &GIOCATORE, const int ncattivi);

/** Decrementa le vite del giocatore se collide con un cattivo e fa ripartire il gioco dopo aver atteso 3 secondi 
 * @param GIOCATORE	struttura necessaria per decrementare le vite del giocatore
 * @param puntitmp  punti temporanei da confrontare con GIOCATORE.punti per tenere il parametro maggiore
 */
int espl_giocatore(giocatore &GIOCATORE, int puntitmp);

/** Fa saltare il giocatore. Se arriva troppo in alto (o troppo in basso) viene settata la y al massimo o al minimo 
 *  in modo che non esca dallo schermo.
 * @param GIOCATORE struttura necessaria per far saltare il giocatore
 */
void saltare(giocatore &GIOCATORE);

/** Chiamata quando si ha vinto o si sono finite le vite. Fa apparire una scritta e chiede se si vuole tornare a giocare. 
 *  Se si, fa ripartire il gioco, altrimenti esce.
 * @param StatoTastiera	registra se è stato premuto un pulsante
 * @param SFONDO		struttura necessaria per far ripartire il gioco
 * @param GIOCATORE		struttura necessaria per far ripartire il gioco
 * @param *CATTIVI		struttura necessaria per far ripartire il gioco
 * @param ncattivi		numero massimo di cattivi
 * @param LDisplay		larghezza del display
 * @param puntitmp		punti da stampare quando si è arrivati al gameover
 * @param vinto 		se vera, si ha vinto altrimenti si è nel gameover
 * @param fine			se vera, termina il gioco
 * @param gameover		se vera, rinizializza le srutture
 * */
void finito(ALLEGRO_KEYBOARD_STATE StatoTastiera, sfondo &SFONDO, giocatore &GIOCATORE, cattivi *CATTIVI, const int ncattivi, const int LDisplay, const int puntitmp, bool vinto, bool &fine, bool &gameover);


